import message from './component'
// export default (Vue, options) => {
//   Vue.prototype.$message = {
//     success: () => {},
//     error: () => {}
//   }
// }

export default {
  install (Vue, options) {
    // 创建一个组件类
    const CompoenntClass = Vue.extend(message)

    const createComponent = (type, msg) => {
      // 生成组件实例
      const MessageComponent = new CompoenntClass({
        // 给组件传递props
        propsData: {
          type,
          msg
        }
      })
      // 手动挂载组件，如果不传参数那么只会渲染成dom，但是不会渲染到页面
      MessageComponent.$mount()
      document.body.appendChild(MessageComponent.$el)
    }
    // 扩展当前Vue原型添加$message对象
    Vue.prototype.$message = {
      success: (msg) => {
        createComponent('success', msg)
      },
      error: (error) => {
        createComponent('error', error)
      }
    }
  }
}
/**
 * 在vue中组件的创建方式有3种，全局，局部，扩展子类
 * vue.component   组件中的components注册的组件都是自动实例化，
 * 而vue.extend生成组件类需要手动实例化，手动挂载$mount，手动销毁$destroy
 */
